﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Highchart.Core;
using System.Collections.ObjectModel;
using Highchart.Core.Data.Chart;
using Highchart.Core.PlotOptions;

namespace Highchart.Web
{
    public partial class Sample04 : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

            Exemplo04();

        }

        private void Exemplo04()
        {

            // títulos
            hcPopulacao.Title = new Title("Estimativa da população mundial por região");
            hcPopulacao.SubTitle = new SubTitle("fonte: wikipedia.org");

            //definições de eixos
            hcPopulacao.YAxis.Add(new YAxisItem { title = new Title("Porcentagem") });
            hcPopulacao.XAxis.Add(new XAxisItem { categories = new[] { "1750", "1800", "1850", "1900", "1950", "1999", "2050" } });

            //configuração para empilhar percentualmente
            hcPopulacao.PlotOptions = new PlotOptionsArea { stacking = Stacking.percent, lineColor = "#ffffff", lineWidth = 1, fillOpacity = 0.45 };

            //dados
            var series = new Collection<Serie>();
            series.Add(new Serie { name = "Ásia", data = new object[] { 502, 635, 809, 947, 1402, 3634, 5268 } });
            series.Add(new Serie { name = "África", data = new object[] { 106, 107, 111, 133, 221, 767, 1766 } });
            series.Add(new Serie { name = "Europa", data = new object[] { 163, 203, 276, 408, 547, 729, 628 } });
            series.Add(new Serie { name = "América", data = new object[] { 18, 31, 54, 156, 339, 818, 1201 } });
            series.Add(new Serie { name = "Oceânia", data = new object[] { 2, 2, 2, 6, 13, 30, 46 } });

            //tooltip
            hcPopulacao.Tooltip = new ToolTip("Highcharts.numberFormat(this.percentage, 1) +'% ('+ Highcharts.numberFormat(this.y, 0, ',') +' milhões)'");            

            //bind do controle
            hcPopulacao.DataSource = series;
            hcPopulacao.DataBind();

        }
    }
}